<?php 

/** DAO de Bolsas */
class DaoBolsa extends DAO {
	
	public function get($id) {
		$select = db_select(Bolsa::TYPE)
		->fields(Bolsa::TYPE)
		->condition('id', $id)
		->execute()
		->fetchAll();

		$bolsa = new Bolsa();
		foreach ($select as $row) {
			$bolsa->id					= $row->id;
			$dao_aluno					= new DaoAluno(Aluno::TYPE);
			$bolsa->aluno				= $dao_aluno->get($row->aluno_id);
			$dao_modalidade     = new DaoModalidade(Modalidade::TYPE);
			$bolsa->modalidade  = $dao_modalidade->get($row->modalidade_id);
			$bolsa->inicio      = $row->inicio;
			$bolsa->fim					= $row->fim;
			$bolsa->ativo				= $row->ativo;
		}

		return $bolsa;
	}

	/** Carrega varias instancias do banco */
	public function listar() {
		return $this->_listar();
	}
	
	/** Carrega varias instancias do banco */
	public function _listar($status = NULL) {
		$query = db_select(Bolsa::TYPE)->fields(Bolsa::TYPE);
		
		// caso queria fazer alguma consulta que envolva o status da bolsa, eh lancada essa condicao
		if ($status != NULL) {
			$query = $query->condition('ativo', $status);
		} 
		
		$select = $query->execute()->fetchAll();

		$bolsas = array();
		foreach ($select as $row) {
			$bolsa 				  = new Bolsa();
			$bolsa->id			= $row->id;

			$dao_aluno			= new DaoAluno(Aluno::TYPE);
			$bolsa->aluno		= $dao_aluno->get($row->aluno_id);

			$dao_modalidade     = new DaoModalidade(Modalidade::TYPE);
			$bolsa->modalidade  = $dao_modalidade->get($row->modalidade_id);

			$bolsa->inicio      = $row->inicio;
			$bolsa->fim					= $row->fim;
			$bolsa->ativo				= $row->ativo;

			array_push($bolsas, $bolsa);
		}

		return $bolsas;
	}

	/**
	 * retorna as bolsas de um determinado aluno
	 */
	public function getBolsasAluno($aluno) {
		$select = db_select(Bolsa::TYPE)
		->fields(Bolsa::TYPE)
		->condition('aluno_id', $aluno->id)
		->execute()
		->fetchAll();
		
		$bolsas = array();
		foreach ($select as $row) {
			$bolsa 				  = new Bolsa();
			$bolsa->id			= $row->id;		
			$bolsa->aluno		= $aluno;
		
			$dao_modalidade     = new DaoModalidade(Modalidade::TYPE);
			$bolsa->modalidade  = $dao_modalidade->get($row->modalidade_id);
		
			$bolsa->inicio      = $row->inicio;
			$bolsa->fim					= $row->fim;
			$bolsa->ativo				= $row->ativo;
		
			array_push($bolsas, $bolsa);
		}
		
		return $bolsas;
	}

}